// pages/settings/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,
    settings: {
      sound: true,
      bgm: true,
      vibration: true,
      difficulty: 0
    },
    difficultyOptions: ['简单', '普通', '困难'],
    highScore: 0,
    playCount: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadUserInfo();
    this.loadSettings();
    this.loadGameData();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 加载用户信息
  loadUserInfo() {
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({ userInfo });
    }
  },

  // 加载设置
  loadSettings() {
    const settings = wx.getStorageSync('gameSettings') || this.data.settings;
    this.setData({ settings });
  },

  // 加载游戏数据
  loadGameData() {
    this.setData({
      highScore: wx.getStorageSync('highScore') || 0,
      playCount: wx.getStorageSync('playCount') || 0
    });
  },

  // 处理登录
  handleLogin() {
    wx.getUserProfile({
      desc: '用于完善用户资料',
      success: (res) => {
        const userInfo = res.userInfo;
        console.log(userInfo,"userInfo")
        userInfo.uid = this.generateUID(); // 生成用户ID
        wx.setStorageSync('userInfo', userInfo);
        this.setData({ userInfo });
      },
      fail: (err) => {
        console.error('登录失败:', err);
        wx.showToast({
          title: '登录失败',
          icon: 'none'
        });
      }
    });
  },

  // 生成用户ID
  generateUID() {
    return 'UID_' + Math.random().toString(36).substr(2, 9);
  },

  // 切换音效
  toggleSound(e) {
    this.updateSetting('sound', e.detail.value);
  },

  // 切换背景音乐
  toggleBGM(e) {
    this.updateSetting('bgm', e.detail.value);
  },

  // 切换震动
  toggleVibration(e) {
    this.updateSetting('vibration', e.detail.value);
  },

  // 设置难度
  setDifficulty(e) {
    this.updateSetting('difficulty', parseInt(e.detail.value));
  },

  // 更新设置
  updateSetting(key, value) {
    const settings = this.data.settings;
    settings[key] = value;
    this.setData({ settings });
    wx.setStorageSync('gameSettings', settings);
  },

  // 显示教程
  showTutorial() {
    wx.navigateTo({
      url: '/pages/tutorial/index'
    });
  },

  // 清除缓存
  clearCache() {
    wx.showModal({
      title: '提示',
      content: '确定要清除游戏缓存吗？这将重置所有游戏数据。',
      success: (res) => {
        if (res.confirm) {
          wx.clearStorageSync();
          this.setData({
            settings: {
              sound: true,
              bgm: true,
              vibration: true,
              difficulty: 0
            },
            highScore: 0,
            playCount: 0
          });
          wx.showToast({
            title: '清除成功',
            icon: 'success'
          });
        }
      }
    });
  },

  // 关于游戏
  about() {
    wx.showModal({
      title: '关于游戏',
      content: '连连看 v1.0.0\n一个简单好玩的小游戏\n开发者：李子阳&高熳',
      showCancel: false
    });
  }
})